1. Field of the Invention
The present invention relates generally to computer-aided design and engineering, and more particularly to a system and method for controlling and optimizing surface projections during generation of finite element representations of objects.
2. Description of Related Art
Finite element analysis is used to predict the behavior of a physical object under particular loading conditions. This is done by decomposing the object into geometrically simple objects, known as elements, whose behavior can be expressed in classical engineering equations. An element can be thought of as a set of nodes connected by element edges. For example, elements may be triangular, quadrilateral, tetrahedral, or of more complicated connectivity. By calculating the influence of each element upon its neighbors, an approximation of the physical behavior of the overall object can be made.
The task of deriving a model composed of elements, loading conditions, material properties, and behavior attributes which can represent the original object is called finite element modeling. Many interactive systems exist to aid in the definition of such finite element models from previously defined CAD models by generating a finite element mesh over the surface(s) of the object under scrutiny. Examples of mesh generators include mappings to parametric space or surface tessellation. Surface tessellation is a term that describes any method of subdividing an arbitrarily bounded region of an arbitrarily curved surface completely into elements, for example quadrilaterals.
Various methods and systems for finite element mesh generation or "meshing" are known which employ marching applications for generating point projections onto a given surface. Such programs generate a mesh by extracting element by element, while marching on a path in space, until the whole surface is meshed. "Marching" is used herein to refer to the construction of an extraction element along an inner edge of a node loop during the meshing operation. This construction is repeated as long as there is room for a good extraction element anywhere within the remaining mesh region. Thus, while the system is moving from place to place around the node loop, the system is considered to be marching. Marching programs are used in various fields of endeavor, including for example machining along surfaces, as well as finite element surface meshing (e.g. surface tessellation).
Obtaining the point projection is the most CPU intensive part of an marching program, accounting for as much as 90% of the CPU time. Moreover, most highly efficient projection programs require an initial (u,v) guess (e.g., Newton-Raphson projection). The success, quality, and speed of such projections depend on the quality of the initial guess. An initial guess may be found by testing distances between the point in space and a given set of points on the surface (referred to as a "guess search"). The parameters of the closest surface point may serve as the initial guess. Finding an initial guess when one is not needed to efficiently project a point is a further waste of CPU resources.
Until the present invention, a marching program would find a Cartesian point and then directly call a projection routine using the last (u,v) guess, or not, depending upon the marching program, to provide the next projected point. While there have been separate improvements on the marching programs as well as on projectors, there has been no consideration of optimizing the relationship between the marching program and the projector to thereby decrease CPU time and speed up finite element mesh generation.